package models

import "time"

type SysAuthority struct {
	CreatedAt     time.Time
	UpdatedAt     time.Time
	DeletedAt     *time.Time `sql:"index"`
	AuthorityId   string     `json:"authorityId" gorm:"not null;unique;primary_key;comment:角色ID;size:90"`
	AuthorityName string     `json:"authorityName" gorm:"comment:角色名"`
	ParentId      string     `json:"parentId" gorm:"comment:父角色ID"`
	// 这个字段通过 many2many 关联到数据库表 sys_data_authority_id，意味着它与 SysAuthority 表之间存在多对多的关系。
	DataAuthorityId []SysAuthority `json:"dataAuthorityId" gorm:"many2many:sys_data_authority_id"`
	// 子权限，这个字段没有在数据库中进行映射（gorm:"-"），可能是为了方便内存操作和数据结构的组织。
	Children     []SysAuthority `json:"children" gorm:"-"`
	SysBaseMenus []SysBaseMenu  `json:"menus" gorm:"many2many:sys_authority_menus;"`
}
